코딩테스트 연습 - 두 수의 곱 구하기 | 프로그래머스 스쿨

[ 템플릿 코드 ]

#include <string>
#include <vector>
 
using namespace std;
 
int solution(int num1, int num2) {
    int answer = 0;
    return answer;
}

[ 풀이 ]

#include <string>
#include <vector>
 
using namespace std;
 
int solution(int num1, int num2) 
{
    int answer = num1 * 1000 / num2;
    return answer;
}

[ 해설 ]

#include <iostream> // 표준 입출력을 위한 헤더 파일 포함
using namespace std; // std:: 네임스페이스 생략 설정
 
// 두 수를 나눈 값에 1000을 곱한 정수 값을 구하는 함수
int solution(int num1, int num2) {
 
    // 계산 순서가 매우 중요합니다! (왼쪽에서 오른쪽으로 진행)
    // 1. 먼저 num1에 1000을 곱해서 숫자의 덩치를 크게 키웁니다 (예: 3 -> 3000)
    // 2. 덩치가 커진 상태(3000)에서 num2(2)로 나누어 소수점이 생기는 것을 원천 차단합니다.
    // 3. 계산된 정수 결과값(1500)을 answer 변수에 안전하게 저장합니다.
    int answer = num1 * 1000 / num2;
 
    // 최종 정답을 호출한 곳으로 반환합니다.
    return answer;
}

[ 타 답안 ]

#include <iostream> // 표준 입출력 기능을 사용하기 위한 헤더 파일
using namespace std; // std:: 네임스페이스 생략 설정
 
// 최종 결과물은 소수점이 없는 정수(int)로 반환하는 함수
int solution(int num1, int num2) {
 
    // 1. double(num1) 과 double(num2)를 통해 각각 정수를 실수로 일시 변환합니다. (예: 3.0 / 2.0)
    // 2. 실수끼리 나누었기 때문에 소수점이 살아있는 정확한 값이 나옵니다. (3.0 / 2.0 = 1.5)
    // 3. 거기에 1000을 곱해 완벽한 실수 값을 만듭니다. (1.5 * 1000 = 1500.0)
    // 4. 하지만 함수의 반환형이 int이므로, return하면서 1500.0의 .0이 떨어져 나가고 정수 1500이 반환됩니다.
    return double(num1) / double(num2) * 1000;
 
}

C++ CodingTest